The computer mouse has become one of the most preferred input devices for personal computer (PC) users. Since the early 1960's when the first computer mouse was invented, the mouse has redefined the way people interact with computers. It has become the computer-human interface of choice for most people.
A common function of a mouse is to control the movement of a cursor on a display screen. Motion of the mouse produces a corresponding motion of the cursor. A user input is typically provided by pressing one of the mouse buttons (assuming, there are more than one), which generates an event stream for the computer to perform a specified function. Since most personal computers have a single mouse, a user input produces only a single stream of events. This has many disadvantages. First, the target of the mouse event stream (such as a software application, or display, in case more than one displays exist) needs to be selected explicitly. This can be a problem when the user needs to frequently switch between applications or displays. Second, the interpretation of the mouse event stream (e.g. drawing, gesture, cursor control) needs to be selected explicitly (e.g. by pressing a button to select a mode). This interferes with fluid interaction encompassing multiple modes. Third, when multiple users are using the same computer, the active user needs to be selected explicitly. One of the methods which has been tried to overcome the above difficulties is to use multiple mice for a single computer. However, it has been realized that even this approach has limitations as it requires considerable real estate and is not suitable for portable computers. The present invention describes how a single pointing device with the ability to distinguish different fingers can be used to provide multiple mouse event streams, which in turn can control different applications and displays.